import pygame
from settings import *
from random import randint


class BulletSupply(pygame.sprite.Sprite):
    def __init__(self):
        super().__init__()

        self.image = pygame.image.load(FILE_PATH + "image/bullet_supply.png").convert_alpha()
        self.rect = self.image.get_rect()
        self.rect.left = randint(0, SCREEN_RECT.width - self.rect.width)
        self.rect.bottom = -100
        self.speed = 3
        self.active = False
        self.mask = pygame.mask.from_surface(self.image)

    def move(self):
        if self.rect.top < SCREEN_RECT.height:
            self.rect.top += self.speed
        else:
            self.active = False

    def reset(self):
        self.active = True
        self.rect.left = randint(0, SCREEN_RECT.width - self.rect.width)
        self.rect.bottom = -100


class BombSupply(pygame.sprite.Sprite):
    def __init__(self):
        super().__init__()

        self.image = pygame.image.load(FILE_PATH + "image/bomb_supply.png").convert_alpha()
        self.rect = self.image.get_rect()
        self.rect.left = randint(0, SCREEN_RECT.width - self.rect.width)
        self.rect.bottom = -100
        self.speed = 3
        self.active = False
        self.mask = pygame.mask.from_surface(self.image)

    def move(self):
        if self.rect.top < SCREEN_RECT.height:
            self.rect.top += self.speed
        else:
            self.active = False

    def reset(self):
        self.active = True
        self.rect.left = randint(0, SCREEN_RECT.width - self.rect.width)
        self.rect.bottom = -100


class LifeSupply(pygame.sprite.Sprite):
    def __init__(self):
        super().__init__()

        self.image = pygame.image.load(FILE_PATH + "image/life_supply.png").convert_alpha()
        self.rect = self.image.get_rect()
        self.rect.left = randint(0, SCREEN_RECT.width - self.rect.width)
        self.rect.bottom = -100
        self.speed = 3
        self.active = False
        self.mask = pygame.mask.from_surface(self.image)

    def move(self):
        if self.rect.top < SCREEN_RECT.height:
            self.rect.top += self.speed
        else:
            self.active = False

    def reset(self):
        self.active = True
        self.rect.left = randint(0, SCREEN_RECT.width - self.rect.width)
        self.rect.bottom = -100